<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实例成员和静态成员</title>
</head>
<body>
    <!-- 
        ☆☆ 实例成员
            通过构造函数创建的对象叫做实例对象，实例对象中的方法和属性称为实例成员（实例属性和实例方法）
            
            说明： 为构造函数传入参数，创建结构相同但值不同的对象
                   构造函数创建的实例对象彼此独立互不影响
        ☆☆ 静态成员
            构造函数中的方法被称为静态成员（静态属性和静态方法）
            说明： 静态成员只能构造函数来访问
                  静态方法中的this指向构造函数
                  比如：Math.PL  Date.now()
     -->

     <script>
        // 实例成员和静态成员
        // 实例成员：实例对象上的属性和方法属于实例成员
        function Pig (name){
            this.name = name
        }
        const peiqi = new Pig("佩奇")
        const qiaozhi = new Pig("乔治")

        peiqi.name = "小猪佩奇" // 实例属性
        peiqi.sayHi = function(){ // 实例方法
            console.log("我是佩奇");
        }
        console.log(peiqi === qioazhi ); // 返回的是一个false， 
        console.log(peiqi);
        console.log(qiaozhi); 
        // 上面两个方法只属于佩奇
    

        //  ====================
        // 静态成员：构造函数上的属性和方法称为静态成员
        function Pig1(name){
            this.name = name
        }
        Pig1.eyes = 2  // 静态属性
        Pig1.sayHi=function(){
            console.log(this); // 静态方法中的this指向构造函数
        }

        Pig1.sayHi() // 只能构造函数进行调用


     </script>
</body>
</html>